/**
 * <copyright>
 * </copyright>
 *
 * 
 */
package OrchestrationLanguage.resource.ol.mopp;

public class OlMetaInformation implements OrchestrationLanguage.resource.ol.IOlMetaInformation {
	
	public String getSyntaxName() {
		return "ol";
	}
	
	public String getURI() {
		return "http://apc.utwente.nl/OrchestrationLanguage";
	}
	
	public OrchestrationLanguage.resource.ol.IOlTextScanner createLexer() {
		return new OrchestrationLanguage.resource.ol.mopp.OlAntlrScanner(new OrchestrationLanguage.resource.ol.mopp.OlLexer());
	}
	
	public OrchestrationLanguage.resource.ol.IOlTextParser createParser(java.io.InputStream inputStream, String encoding) {
		return new OrchestrationLanguage.resource.ol.mopp.OlParser().createInstance(inputStream, encoding);
	}
	
	public OrchestrationLanguage.resource.ol.IOlTextPrinter createPrinter(java.io.OutputStream outputStream, OrchestrationLanguage.resource.ol.IOlTextResource resource) {
		return new OrchestrationLanguage.resource.ol.mopp.OlPrinter2(outputStream, resource);
	}
	
	public org.eclipse.emf.ecore.EClass[] getClassesWithSyntax() {
		return new OrchestrationLanguage.resource.ol.mopp.OlSyntaxCoverageInformationProvider().getClassesWithSyntax();
	}
	
	public org.eclipse.emf.ecore.EClass[] getStartSymbols() {
		return new OrchestrationLanguage.resource.ol.mopp.OlSyntaxCoverageInformationProvider().getStartSymbols();
	}
	
	public OrchestrationLanguage.resource.ol.IOlReferenceResolverSwitch getReferenceResolverSwitch() {
		return new OrchestrationLanguage.resource.ol.mopp.OlReferenceResolverSwitch();
	}
	
	public OrchestrationLanguage.resource.ol.IOlTokenResolverFactory getTokenResolverFactory() {
		return new OrchestrationLanguage.resource.ol.mopp.OlTokenResolverFactory();
	}
	
	public String getPathToCSDefinition() {
		return "OrchestrationLanguage/metamodel/OrchestrationLanguage.cs";
	}
	
	public String[] getTokenNames() {
		return new OrchestrationLanguage.resource.ol.mopp.OlParser(null).getTokenNames();
	}
	
	public OrchestrationLanguage.resource.ol.IOlTokenStyle getDefaultTokenStyle(String tokenName) {
		return new OrchestrationLanguage.resource.ol.mopp.OlTokenStyleInformationProvider().getDefaultTokenStyle(tokenName);
	}
	
	public java.util.Collection<OrchestrationLanguage.resource.ol.IOlBracketPair> getBracketPairs() {
		return new OrchestrationLanguage.resource.ol.mopp.OlBracketInformationProvider().getBracketPairs();
	}
	
	public org.eclipse.emf.ecore.EClass[] getFoldableClasses() {
		return new OrchestrationLanguage.resource.ol.mopp.OlFoldingInformationProvider().getFoldableClasses();
	}
	
	public org.eclipse.emf.ecore.resource.Resource.Factory createResourceFactory() {
		return new OrchestrationLanguage.resource.ol.mopp.OlResourceFactory();
	}
	
	public OrchestrationLanguage.resource.ol.mopp.OlNewFileContentProvider getNewFileContentProvider() {
		return new OrchestrationLanguage.resource.ol.mopp.OlNewFileContentProvider();
	}
	
	public void registerResourceFactory() {
		org.eclipse.emf.ecore.resource.Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(getSyntaxName(), new OrchestrationLanguage.resource.ol.mopp.OlResourceFactory());
	}
	
	/**
	 * Returns the key of the option that can be used to register a preprocessor that
	 * is used as a pipe when loading resources. This key is language-specific. To
	 * register one preprocessor for multiple resource types, it must be registered
	 * individually using all keys.
	 */
	public String getInputStreamPreprocessorProviderOptionKey() {
		return getSyntaxName() + "_" + "INPUT_STREAM_PREPROCESSOR_PROVIDER";
	}
	
	/**
	 * Returns the key of the option that can be used to register a post-processors
	 * that are invoked after loading resources. This key is language-specific. To
	 * register one post-processor for multiple resource types, it must be registered
	 * individually using all keys.
	 */
	public String getResourcePostProcessorProviderOptionKey() {
		return getSyntaxName() + "_" + "RESOURCE_POSTPROCESSOR_PROVIDER";
	}
	
	public String getLaunchConfigurationType() {
		return "OrchestrationLanguage.resource.ol.ui.launchConfigurationType";
	}
	
}
